package me.firstapp.spi.shop;

import java.util.Map;

import me.firstapp.common.json.ListObject;
import me.firstapp.common.json.PageObject;
import me.firstapp.common.json.SingleObject;
import me.firstapp.common.module.shop.JsonProductSkuRelation;

public interface ProductSkuRelService {

	/**
	 * 调用新增属性商品接口
	 * 
	 * @param productId
	 * @param skuName1
	 * @param skuValue1
	 * @param skuName2
	 * @param skuValue2
	 * @param stock
	 * @param price
	 * @return
	 */
	SingleObject<JsonProductSkuRelation> addProductSkuRelation(Long productId, String skuName1, String skuValue1,
			String skuName2, String skuValue2, Integer stock, Double price);

	/**
	 * 调用更新属性商品接口
	 * 
	 * @param productSkuRelationId
	 * @param skuName1
	 * @param skuValue1
	 * @param skuName2
	 * @param skuValue2
	 * @param stock
	 * @param price
	 * @return
	 */
	SingleObject<JsonProductSkuRelation> updateProductSkuRelation(Long productSkuRelationId, String skuName1,
			String skuValue1, String skuName2, String skuValue2, Integer stock, Double price);

	/**
	 * 调用通过id查询属性商品接口
	 * 
	 * @param productSkuRelationId
	 * @return
	 */
	SingleObject<JsonProductSkuRelation> findProductSkuRelationById(Long productSkuRelationId);

	/**
	 * 调用删除属性商品接口
	 * 
	 * @param ids
	 * @return
	 */
	SingleObject<Object> deleteProductSkuRelations(String ids);

	/**
	 * 调用设置默认属性商品接口
	 * 
	 * @param productSkuRelationId
	 * @return
	 */
	SingleObject<JsonProductSkuRelation> setDefaultProductSkuRelation(Long productSkuRelationId);

	/**
	 * 调用查询商品的属性列表接口
	 * 
	 * @param productId
	 * @param isDefault
	 * @return
	 */
	ListObject<JsonProductSkuRelation> findProductSkuRelationsByProductId(Long productId, Integer isDefault);

	/**
	 * 调用分页查询商品属性接口
	 * 
	 * @param pageNo
	 * @param pageSize
	 * @param searchParams
	 * @param sortParam
	 * @param sortType
	 * @return
	 */
	PageObject<JsonProductSkuRelation> findApiJsonProductSkuRelationPage(Integer pageNo, Integer pageSize,
			Map<String, Object> searchParams, String sortParam, String sortType);
}
